package com.huawei.hms.common.internal.safeparcel;

import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable.Creator;

public class a {

    public static class a extends RuntimeException {
        public a(String str, Parcel parcel) {
            super(new StringBuffer(String.valueOf(str).length() + 41).append(str).append(" Parcel: pos=").append(parcel.dataPosition()).append(" size=").append(parcel.dataSize()).toString());
        }
    }

    public static int a(Parcel parcel) {
        return parcel.readInt();
    }

    public static int a(int i) {
        return 65535 & i;
    }

    public static int a(Parcel parcel, int i) {
        if ((i & -65536) != -65536) {
            return (i >> 16) & 65535;
        }
        return parcel.readInt();
    }

    public static void b(Parcel parcel, int i) {
        parcel.setDataPosition(a(parcel, i) + parcel.dataPosition());
    }

    private static void a(Parcel parcel, int i, int i2) {
        int a = a(parcel, i);
        if (a != i2) {
            String toHexString = Integer.toHexString(a);
            throw new a(new StringBuilder(String.valueOf(toHexString).length() + 46).append("Expected size ").append(i2).append(" got ").append(a).append(" (0x").append(toHexString).append(")").toString(), parcel);
        }
    }

    public static int b(Parcel parcel) {
        int a = a(parcel);
        int a2 = a(parcel, a);
        int dataPosition = parcel.dataPosition();
        if (a(a) != 20293) {
            String str = "Expected object header. Got 0x";
            String valueOf = String.valueOf(Integer.toHexString(a));
            if (valueOf.length() != 0) {
                str = str.concat(valueOf);
            }
            throw new a(str, parcel);
        }
        a2 += dataPosition;
        if (a2 >= dataPosition && a2 <= parcel.dataSize()) {
            return a2;
        }
        throw new a("Size read is invalid start=" + dataPosition + " end=" + a2, parcel);
    }

    public static int c(Parcel parcel, int i) {
        a(parcel, i, 4);
        return parcel.readInt();
    }

    public static long d(Parcel parcel, int i) {
        a(parcel, i, 8);
        return parcel.readLong();
    }

    public static String e(Parcel parcel, int i) {
        int a = a(parcel, i);
        int dataPosition = parcel.dataPosition();
        if (a == 0) {
            return null;
        }
        String readString = parcel.readString();
        parcel.setDataPosition(a + dataPosition);
        return readString;
    }

    public static Bundle f(Parcel parcel, int i) {
        int a = a(parcel, i);
        int dataPosition = parcel.dataPosition();
        if (a == 0) {
            return null;
        }
        Bundle readBundle = parcel.readBundle();
        parcel.setDataPosition(a + dataPosition);
        return readBundle;
    }

    public static String[] g(Parcel parcel, int i) {
        int a = a(parcel, i);
        int dataPosition = parcel.dataPosition();
        if (a == 0) {
            return new String[0];
        }
        String[] createStringArray = parcel.createStringArray();
        parcel.setDataPosition(a + dataPosition);
        return createStringArray;
    }

    public static <T> T[] a(Parcel parcel, int i, Creator<T> creator) {
        int a = a(parcel, i);
        int dataPosition = parcel.dataPosition();
        if (a == 0) {
            return creator.newArray(0);
        }
        T[] createTypedArray = parcel.createTypedArray(creator);
        parcel.setDataPosition(a + dataPosition);
        return createTypedArray;
    }

    public static void h(Parcel parcel, int i) {
        if (parcel.dataPosition() != i) {
            throw new a("Overread allowed size end=" + i, parcel);
        }
    }
}
